Skip to content

[#489] TodoList, TodoDetail, TodoEditor 플로우에 사용되는 뷰모델의 생성주기를 개선한다#502

Merged
opficdev merged 4 commits into
developfrom
refactor/#489-todoList-Detail-Editor
May 31, 2026
Merged

[#489] TodoList, TodoDetail, TodoEditor 플로우에 사용되는 뷰모델의 생성주기를 개선한다#502
opficdev merged 4 commits into
developfrom
refactor/#489-todoList-Detail-Editor

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

TodoList, TodoDetail 화면에서 사용되는 ViewModel 생성 책임이 MainViewCoordinator에 함께 묶여 있어 Main 화면 조정 책임과 Todo 화면 생명주기 책임이 섞여 있던 구조 정리

📝 작업 내용

📌 요약

  • TodoListViewModel, TodoDetailViewModel 생성 책임을 TodoSceneCoordinator로 분리
  • MainViewCoordinator는 MainViewModel만 소유하도록 역할 축소
  • MainView에서 Todo 화면 진입 시 TodoSceneCoordinator를 통해 ViewModel 생성
  • MainViewCoordinator의 주 ViewModel 프로퍼티명을 viewModel로 정리

🔍 상세

  • TodoSceneCoordinator 추가
    • TodoListViewModel 생성 및 단일 캐시 관리
    • TodoDetailViewModel 생성 및 단일 캐시 관리
    • 이후 Todo 작성/수정 화면의 멀티 윈도우 Scene 확장 시 Todo 화면 생명주기를 이어서 관리할 수 있는 기반 마련
  • MainViewCoordinator 정리
    • TodoListViewModel, TodoDetailViewModel 생성 로직 제거
    • MainViewModel 소유와 Main 탭 상태 처리 책임만 유지
    • mainViewModel 프로퍼티명을 viewModel로 변경
  • MainView 연결 변경
    • Todo 카테고리 진입 시 TodoSceneCoordinator.makeListViewModel 사용
    • Todo 상세 진입 시 TodoSceneCoordinator.makeDetailViewModel 사용

📸 영상 / 이미지 (Optional)

@opficdev opficdev self-assigned this May 31, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 MainViewCoordinator에서 담당하던 Todo 관련 뷰모델 생성 및 캐싱 책임을 새로운 TodoSceneCoordinator로 분리하고, MainView가 이를 사용하도록 수정하였습니다. 리뷰에서는 TodoSceneCoordinator가 단일 프로퍼티로 뷰모델을 캐싱하고 있어 딥 네비게이션 시 상태 유실 버그가 발생할 수 있음을 지적하고, 딕셔너리 기반 캐싱 구조로 개선할 것을 제안했습니다.

@opficdev opficdev merged commit a536573 into develop May 31, 2026
1 check passed
@opficdev opficdev deleted the refactor/#489-todoList-Detail-Editor branch May 31, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TodoList, TodoDetail, TodoEditor 플로우에 사용되는 뷰모델의 생성주기를 개선한다

1 participant